2.1 Linux 系统简介
Linux 系统由 Linus Torvalds (林纳斯·托瓦兹)于 1991 年发布在新闻组的内核发展而来,由于它在发布之初就免费和自由传播,支持多用户、多任务及多线程,且兼容POSIX 标准,使得它支持运行当时主流系统 Unix 的一些工具软件,吸引了众多的使用者和开发者,逐渐发展壮大至今。
Linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多企业级的项目都会部署到Linux/unix系统上。1991年 Linus Linux 0.0.1版,代码为8K行。目前最新的稳定版本为5.10.6【2021-01-10】。Linux加入了GNU,整体基于GPL协议,允许开源、分享传播、修改。
Linux操作系统由以下几个部分组成:
keanel–内核:
核心程序,用于管理硬件设备、系统的线程进程、内存、交换空间、文件系统、精灵进程(守护进程)等。主要实现系统程序与硬件之间的控制管理功能。
Shell:
包裹在内核之外的人机交互界面,用于用户和内核之间打交道的功能,类似于windows CMD。 通过Shell将输入的命令与内核通讯,好让内核可以控制硬件开正确无误的操作工作。Shell有着不同的分类,比如Bourne shell(sh),Korn shell(ksh)、C shell (csh)、Bourne-again shell(bash)、tcsh。其中最常用的有csh和bash,其提示符如下:
sh–Bash :#root $user
csh–:#root %user
user application
Files System–文件系统,管理文件和目录
Linux有以下一些特性:
多用户、多任务(进程、线程处理),多平台,图形化界面(x-windows)、硬件低配置、通信与联网、应用程序的支持(编辑器、编辑工具、数据库、办公软件、图形处理、Internet应用、游戏)等。
就目前而言,很多开发都在Linux上完成,做开发的Linux是必不可少的一个开发平台。值得一提的是,Linux在服务器方面有很大优势,很多网站都是用Linux作为开发平台的,未来是属于Linux的,这只是一个时间问题。
Linux主要的发行版:
Ubuntu(乌班图)、 RedHat(红帽)、 CentOS、 Debain[蝶变]、 Fedora、 SuSE、OpenSUSE
关于 Linux 系统的发展历史,建议阅读其作者 Linus 本人的自传《Just For Fun》 一书。
2.2 Linux 内核与发行版
当我们说 Linux 系统时,其含义往往是指采用 Linux 内核的操作系统。 Linux 内核负责控制硬件、管理文件系统、进程管理、网络通讯等,但它本身并没有给用户提供必要的工具和应用软件。
由于 Linux 内核本身是开源的,所以一些人和厂商在其规则之下,基于 Linux 内核搭配各种各样系统管理软件或应用工具软件,从而组成一套完整可用的操作系统,见下图。我们称这样的系统为 Linux 发行版(distribution)。 完整的 Linux 系统就如同汽车, Linux内核构成了最为关键的引擎,不同的发行版就类似使用相同引擎的不同车型。
人们制作发行版通常用于特定的用途,构建哲学不一,侧重点有所不同,因而 Linux发行版可谓百花齐放。其中以 Debian、 Suse 及 Fedora 派系的发行版最为常见。对于基础用户来说,常常会困惑于安装某些软件时,软件的安装帮助会针对不同派系的 Linux 给出不同的安装指令,这实际是由于不同 Linux 派系之间使用不同的包管理软件(可理解为使用不同的软件商店),这无伤大雅。 常见的 Linux 发行版关系见图。
对于初次接触 Linux 的用户,建议只要了解到这些都是 Linux 系统,而且目前我们的开发主机要用的是 Ubuntu 即可。至于在开发板上运行的 Linux 系统,也可以理解为这是我们针对特定板子而定制的 Linux 发行版。
2.2.1 Debian 派系
Debian 派系下主要包含 Debian、 Ubuntu 等发行版。
Debian 的特色在于其海量的软件支持和 apt-get 软件包管理系统,而且其支持的硬件平台非常全面,包括 x86、 AMD、 MIPS、 ARM、 POWERPC 等。
Ubuntu 衍生自 Debian,由于其易用性,可以说是最成功的 Linux 桌面版,且它的成功已经开始漫延至其服务器版本,目前还推出了 Ubuntu Core 版本针对物联网等小型设备领域,非常有发展前景。本书将采用 Ubuntu 作为开发主机的系统环境。
Debian 和 Ubuntu 官网有非常丰富的使用教程,而且中文支持也很好,推荐初学者多多浏览其中的内容,尤其是 Debian。
Debian 官网: https://www.debian.org
Ubuntu 官网: https:// ubuntu.com
2.2.2 Fedora 派系
Fedora 派系下包含 Fedora、 Red Hat Linux、 Red Hat Enterprise(RHEL)、 CentOS 等发行版。
Red Hat Linux 是由 Red Hat(红帽)发行的个人版本 Linux,现已停止开发,他们转而开发主要应用于服务器领域的 Red Hat Enterprise Linux(RHEL),即红帽企业版 Linux。
使用 RHEL 的好处是获得安全稳定的技术支持以及企业级的保证,这正是众多服务器应用场景的核心需求,红帽公司也正是依靠提供这些服务成为了最赚钱的 Linux 公司。现红帽公司已被 IBM 收购。
Fedora 发行版是由社区基于 RHEL 构建的,由 Red Hat 公司赞助,它大胆采用和验证最新的技术,部分经验证的技术会被加入至 RHEL。因而 Fedora 与 RHEL 是被互惠互利关系。从另一个角度看, Fedora 也被认为是 RHEL 的小白鼠版本。
CentOS 全名为 Community Enterprise Operation System,即社区企业操作系统,它由红帽遵循开源协议公开的 RHEL 源代码构建而成,它们的区别在于 CentOS 提供免费的长期升级和更新服务,使用 CentOS 相当于使用 RHEL 而不寻求红帽的技术支持, CentOS 在我国的小型服务器领域应用非常广泛。
2.2.3 Open SUSE 派系
SUSE 派系下包含 SUSE、 SUSE Linux Enterprise Server(SLES)、 openSUSE 等发行版,它们的关系类似于 Fedora, Red Hat Enterprise Linux(RHEL) 和 CentOS 的关系。相对 Red Hat 专长 x86 架构的计算机来说, SUSE 在诞生之初就瞄准大型机,所以 SUSE 在大型服务器领域占有一席之地。
2.2.4麒麟
由于军政系统对信息安全要求严格,我国基于 Linux 内核构建了中标麒麟、优麒麟、银河麒麟等发行版,其特色主要在于自主、风险可控。
2.3 linux 应用领域
个人桌面领域的应用
此领域是传统linux应用最薄弱的环节,传统linux由于界面简单、操作复杂、应用软件少的缺点,一直被windows所压制,但近些年来随着ubuntu、 fedora [fɪˈdɔ:rə] 等优秀桌面环境的兴起,同时各大硬件厂商对其支持的加大, linux在个人桌面领域的占有率在逐渐的提高。
服务器领域
linux在服务器领域的应用是最强的。
linux免费、稳定、高效等特点在这里得到了很好的体现,近些年来linux服务器市场得到了飞速的提升,尤其在一些高端领域尤为广泛。
嵌入式领域
近些年来linux在嵌入式领域的应用得到了飞速的提高,linux运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小可以达到几百KB等特点,使其近些年来在嵌入式领域的应用得到非常大的提高。
主要应用: 机顶盒、数字电视、网络电话、程控交换机、 手机、 PDA、智能家居、智能硬件等都是其应用领域。以后再物联网中应用会更加广泛。
2.4 Linux和Unix的关系
我们先来说说Unix操作系统, Unix的作者一个是肯尼斯·蓝·汤普逊 (英文名:Kenneth Lane Thompson),另外一个是丹尼斯·麦卡利斯泰尔·里奇(英文:Dennis MacAlistair Ritchie),两人也是C语言的设计者,在1983年共获图灵奖。论贡献,Ken在Unix开发中作用更大,Dennis在C语言的设计中功劳更多。多说一句,Ken老老爷子除了发明了Unix操作系统,还顺便设计了B语言、正则表达式和 UTF-8 编码。可能大家没听说过B语言,但是C语言肯定不陌生,但是没有B语言,也就没有今天的C语言,C语言是Dennis老爷子在B语言的基础上创造的。所以说,B语言是目前一切高级编程语言的祖宗,不接受任何反驳!
在上世纪70年代,Ken和Dennis在贝尔实验室创立了Unix,此后,但是Unix走向了商业化道路,主要分为三支:IBM、Sun、HP。这个就不深入讲解了,因为Unix要收费,普通人就不乐意了,这就到了下一个老爷子闪亮登场,他就是理查德·马修·斯托曼(英文名:Richard Matthew Stallman),他发起了 GNU (全称:GNU is Not Unix) 计划,目标是创建一套完全自由的操作系统。同时开创了 Copyleft 的概念。GNU的核心其实是需要使用著作权法的原则来保护使用、修改和分发自由软件的权利。而创造这个之初,其实他想要实现的,就是一个类似 Unix 的自由的操作环境,其核心是自由。有兴趣的可以看下《Gnu 宣言》,里面有句话可以总结Richard 创立GUN的初心:“重现当年软件界合作互助的团结精神”!
Gnu 发起后,Richard和他的小伙伴陆续把计划中的编辑器、编译器和 shell 完成了。唯独缺乏操作系统核心。他们陆续尝试了基于 Hurd、GNU Mach 内核进行开发,认为可以借此加速操作系统的开发。但是都无功而返。直到1991年,有个年轻小伙,他就是Linus Torvalds(林纳斯·托瓦兹)(当时21岁,你说年轻不)从Minix得到灵感,开发出Linux。Linux的定位是“类Unix操作系统”——不是Unix,但类似Unix,从本质上讲,还是Unix的思想,可以说,Linux也是源自Unix。直到1994 年 3 月 14 日,Linux 内核 1.0.0 正式发布,共 176250 行代码。也就是正式版。至此之后 Linux 得到了长足的发展,也影响我们无数人的工作方式,毫不夸张地说,Unix 以及 Linux 的创造和发展,对整个社会的历史进程,有着深远的影响。
我们还是回到GNU,Linux问世,加速了GNU计划的开展,因为Linus的开源,这也让更多加入Linux的研究开发中,促进Linux的高速健康发展。
下图总结了由Unix催生的各大类Unix系统之间的关系图。我也不再赘述了。
2.5 Linux和Windows的比较
前面简介介绍了Linux系统和Linux由来,接下来我们和用户最多的Windows操作系统做个简单比较。